/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rcn.dal.hibernate;

import com.rcn.dal.IGestorDAO;
import com.rcn.dal.interfaces.*;

/**
 *
 * @author Nicolas
 */
public class GestorHibernateDAO implements IGestorDAO{
     private static IGestorDAO gestorHibernateDAO;
    
    private static IHistorialDAO historialDAO;
    private static IMedicoDAO medicoDAO;
    private static IObraSocialDAO obraSocialDAO;
    private static IPacienteDAO pacienteDAO;
    private static ISesionDAO sesionDAO;
    private static ITratamientoDAO tratamientoDAO;
    
    private GestorHibernateDAO(){}
    
    public static IGestorDAO getInstance(){
        if(gestorHibernateDAO==null){
            gestorHibernateDAO=new GestorHibernateDAO();
        }
        return gestorHibernateDAO;
    }
    
    @Override
    public IHistorialDAO getHistorialDAO() {
        if(historialDAO==null){
            historialDAO=new HistorialDAO();
        }
        return historialDAO;
    }

    @Override
    public IMedicoDAO getMedicoDAO() {
        if(medicoDAO==null){
            medicoDAO=new MedicoDAO();
        }
        return medicoDAO;
    }

    @Override
    public IObraSocialDAO getObraSocialDAO() {
        if(obraSocialDAO==null){
            obraSocialDAO=new ObraSocialDAO();
        }
        return obraSocialDAO;
    }

    @Override
    public IPacienteDAO getPacienteDAO() {
        if(pacienteDAO==null){
            pacienteDAO=new PacienteDAO();
        }
        return pacienteDAO;
    }

    @Override
    public ISesionDAO getSesionDAO() {
        if(sesionDAO==null){
            sesionDAO=new SesionDAO();
        }
        return sesionDAO;
    }

    @Override
    public ITratamientoDAO getTratamientoDAO() {
        if(tratamientoDAO==null){
            tratamientoDAO=new TratamientoDAO();
        }
        return tratamientoDAO;
    }
    
}
